home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / libs / mthr25 / demo4.c < prev    next >
C/C++ Source or Header  |  1995-03-29  |  1KB  |  72 lines

  1. /* DEMO4.C  - MicroThread demonstration written by I H Ting
  2.  
  3.   This example demonstrates mailboxes and inter-thread messaging.
  4.   A mailbox is created and several thread are created to send and
  5.   receive message to and from the mailbox.
  6. */
  7.  
  8. #include "mthread.h"
  9.  
  10.  
  11. unsigned msgsSnd=0;
  12.  
  13. void Receiver(void)
  14. {
  15.   char buffer[40];
  16.   unsigned mbx,i;
  17.   mbx = MTGetMailboxHandle("TestMailBox");
  18.   if(mbx){
  19.     for (i=0; i < 70; i++){
  20.       MTSleep(MTrandom(20));
  21.       MTprintf("\nReceiving message...");
  22.       MTReceiveMsg(mbx,40,buffer);
  23.       MTprintf("\nReceived message: %s.",buffer);
  24.     }
  25.   }
  26.   MTEndMultiThreading();
  27. }
  28.  
  29.  
  30. void Sender(void)
  31. {
  32.   unsigned mbx, i;
  33.   char buffer[40];
  34.   mbx = MTGetMailboxHandle("TestMailBox");
  35.   if(mbx){
  36.     for (i=0; i < 70; i++){
  37.       MTsprintf(buffer,"This is message number %u",msgsSnd);
  38.       MTprintf("\nSending message: %s",buffer);
  39.       MTSendMsg(mbx,40,buffer);
  40.       msgsSnd++;
  41.       MTprintf("\nMessage sent");
  42.     }
  43.   }
  44.   MTEndMultiThreading();
  45. }
  46.  
  47.  
  48. void TestMessages(void)
  49. {
  50.   unsigned mbx;
  51.  
  52.   MTInitialise();
  53.   mbx = MTCreateMailbox("TestMailBox");
  54.   if (mbx){
  55.     MTAddThread(Receiver,1);
  56.     MTAddThread(Receiver,1);
  57.     MTAddThread(Sender,5);
  58.     MTAddThread(Sender,5);
  59.     MTAddThread(Sender,5);
  60.     MTAddThread(Sender,5);
  61.   }
  62.   MTStartMultiThreading();
  63. }
  64.  
  65.  
  66. void main(void)
  67. {
  68.   TestMessages();
  69. }
  70.  
  71.  
  72.